package ecitys.gcs

import ecitys.types.Money;

class CalculoVerbaValorInformado extends CalculoVerba{
    Funcionario funcionario
	Verba verba
	int mesCalculo 
	int anoCalculo
	
	@Override
	static Money doCalculo(){
		Money.newMoneyFromReal(getValorVerbaFromServidor())
	}
	
	Money getValorVerbaFromServidor(){
		
		def Money result
		
		def verbaServidor = VerbaServidor.findByVerbaAndFuncionario(verba,funcionario)
		
		if (verbaServidor){
		   if ( ( (verbaServidor.mesCalculo==this.mesCalculo) & (verbaServidor.anoCalculo==this.anoCalculo) ) | 
			    ( (verbaServidor.mesCalculo==0) & (verbaServidor.anoCalculo==this.anoCalculo)) ){
		       
			   verbaServidor.setParcelasQuites(mesCalculo, anoCalculo);
		       
			   return verbaServidor.valorVerba
		   
		   }else{return 0}
		}   
		else
		   0   
	}
	
	public CalculoVerbaValorInformado(Funcionario funcionario, Verba verba, int mesCalculo, int anoCalculo) {
		super();
		this.funcionario = funcionario;
		this.verba = verba;
	}



	static transients = ['funcionario','verba','mesCalculo','anoCalculo','valorVerbaFromServidor']
	
    static constraints = {
    }
	
	static mapping = {
		table schema:"gcs"
	}

}
